package utils

import (
	"encoding/json"
	"io"
	"net/http"
	"ubt-aio-service/app/pkg/logger"
)

// ResJson 通用的返回固定的Json结果的结构体
type ResJson struct {
	Code string `json:"code"`
	Msg  string `json:"msg"`
	Data any    `json:"data"`
}

func ToJson(w http.ResponseWriter, ret *ResJson) {
	if jo, err := json.Marshal(ret); err == nil {
		if _, err = io.WriteString(w, string(jo)); err != nil {
			logger.Error("返回结果输出失败！")
		}
	} else {
		logger.Error("返回结果转JSON失败！")
	}
}

// RetJson 富文本编辑器返回结果的结构体
type RetJson struct {
	Errno   string `json:"errno"`
	Message string `json:"message"`
	Data    any    `json:"data"`
}

func ToJson4We(w http.ResponseWriter, res *RetJson) {
	if jo, err := json.Marshal(res); err == nil {
		if _, err = io.WriteString(w, string(jo)); err != nil {
			logger.Error("返回结果输出失败！")
		}
	} else {
		logger.Error("返回结果转JSON失败！")
	}
}
